/*
	created time:2018/4/8
	author:Chason
	describe:开始游戏
*/
class PassGame extends egret.DisplayObjectContainer{
	public constructor() {
		super();
		this.init();
		//获取闯关数据
		this.data=RES.getRes("passGame_json");
		
			
	}
	private  stageWidth=egret.MainContext.instance.stage.stageWidth;
	private  stageHeight=egret.MainContext.instance.stage.stageHeight;

	//模块
	public gameBackground:egret.DisplayObjectContainer;//背景和音乐
	public header:egret.DisplayObjectContainer;//头部
	public gameWrap;//游戏内容

	//闯关信息
	public data:JSON;//数据
	public passNum:number=0;//闯关数
	public intent:string;//谁出牌--A|B|me
	public prevBCard=null;//上一次B出牌
	public prevMeCard=null;//上一次本玩家出牌
	public meArr:Array<Object>=[]//本玩家数组;
	public BPlayerArr:Array<Object>=[]//B玩家数组;

	/*
		初始化
	*/
	private init():void{
		//游戏背景
		this.gameBackground=new GameBackground();
		this.addChild(this.gameBackground);
		Basic.zhuoBackground(this,this.stageWidth,this.stageHeight)
		//头部
		this.header=new PassGameHeader();
		this.addChild(this.header);
       
         //开始游戏按钮
	   let beginGameBtn=new BeginGameBtn();
	   beginGameBtn.addEventListener(egret.TouchEvent.TOUCH_TAP,()=>{
		  //渲染
		  this.removeChild(beginGameBtn);
		  this.render()
	   },this);   
	   this.addChild(beginGameBtn);
	
	}

	//渲染--开始或者重新关卡执行
	public  render(){
		if(this.gameWrap){
           this.removeChild(this.gameWrap);
		   this.gameWrap=null;
		}
	   this.gameWrap=new egret.Sprite;
	   let data=RES.getRes("passGame_json")[this.passNum];
	   //意图-(谁出牌)
	   this.intent=data.isLandlord?'me':'B';
       //自己是否是地主
	   let isLandlord=data.isLandlord;
		//实例化地主卡牌
		for(let i=0;i<data.landlord.length;i++){
			let card=new Card(`card_json.${data.landlord[i]}`);
			isLandlord?this.meArr.push(card):this.BPlayerArr.push(card);
		}	
		//实例化农民卡牌
		for(let i=0;i<data.farmers.length;i++){
			let card=new Card(`card_json.${data.farmers[i]}`);
			!isLandlord?this.meArr.push(card):this.BPlayerArr.push(card);
		}	
        /*
			初始化一些游戏状态:
			1.显示头像
			2.卡牌出现背景音乐
			3.本玩家--添加扑克到容器和扑克展开动画
			4.玩家B--对方出现牌动画
		*/
		BeginGameBtn.beginInitGame({
			type:"mess",
			isLandlord:isLandlord?"me":"A",
			stageWidth:this.stageWidth,
			stageHeight:this.stageHeight,
			wrap:this.gameWrap,
			meArr:this.meArr,
			BPlayerArr:this.BPlayerArr,
			stage:this
		});

        if(this.intent=='me'){
			//本玩家先出牌
			this.mePlay({
				isFirstBegin:true,
				arr:this.meArr,
			});
		}else{
			//B方出牌
			alert("B方出牌--功能未开发")
		}

	    
		//容器(游戏重新开始后的一些元素)
	    this.addChild(this.gameWrap);	
	}




	/*
		本玩家出牌--显示按钮(出牌,要不起,不要)
		{
			isFirstBegin：刚开始游戏--boolean
			arr:本玩家数组--arr
		}
	*/
	public mePlay(obj){
		//出牌按钮
		let PlayCardBtn=PlayCard.getInstance();
		//启动出牌按钮的点击事件监听
		PlayCardBtn.addEvent({
			arr:obj.arr,
			self:this
		})
		if(obj.isFirstBegin){
			//本玩家开局				
			//设置出牌按钮按钮位置---中间位置
			PlayCardBtn.x=PlayCardBtn.initX;	
		}else{
			//显示其他按钮
			console.log("显示其他按钮")
		}
		this.gameWrap.addChild(PlayCardBtn);
		
	}


	/*
		其他人出牌---这里是玩家B出牌
	*/
	public otherPlay(){
		if(PlayCard.getInstance().parent){
				PlayCard.getInstance().parent.removeChild(PlayCard.getInstance());
		}
		let resuleCard=Algorithm.compCardRule(this.prevBCard,this.BPlayerArr);
		console.log(resuleCard);
	}

	


	
}